﻿namespace FlyingEye.ComServices
{
    public class CreateComeGroupNotificationConfigurationRequest
    {
#pragma warning disable CS8618 // 在退出构造函数时，不可为 null 的字段必须包含非 null 值。请考虑声明为可以为 null。
        protected CreateComeGroupNotificationConfigurationRequest() { }
#pragma warning restore CS8618 // 在退出构造函数时，不可为 null 的字段必须包含非 null 值。请考虑声明为可以为 null。

        public string Secret { get; set; }

        public string AccessToken { get; set; }

        public string GroupName { get; set; }

        public string AgentId { get; set; }

        public string TemplateId { get; set; }

        public string AuthKey { get; set; }

        private string? _uniqueHashKey;

        /// <summary>
        /// 标志组合唯一
        /// </summary>
        public string UniqueHashKey
        {
            get
            {
                var key = CompositeKeyGenerator.GenerateKey(AgentId, TemplateId, AuthKey, Secret, AccessToken);

                if (_uniqueHashKey != key)
                {
                    _uniqueHashKey = key;
                }

                return _uniqueHashKey;
            }

            private set { _uniqueHashKey = value; }
        }
    }
}
